/*
新学期伊始，适逢顿顿书城有购书满x元包邮的活动，小 P 同学欣然前往准备买些参考书。
一番浏览后，小 P 初步筛选出n本书加入购物车中，其中第i 本（1<=i<=n）的价格为ai元。
考虑到预算有限，在最终付款前小 P 决定再从购物车中删去几本书（也可以不删），使得剩余图书的价格总和m在满足包邮条件（m>=x）的前提下最小。
试帮助小 P 计算，最终选购哪些书可以在凑够x元包邮的前提下花费最小？
Input
从标准输入读入数据。
输入的第一行包含空格分隔的两个正整数 n和x ，分别表示购物车中图书数量和包邮条件。
接下来输入n行，其中第 i 行（1<=i<=n）仅包含一个正整数ai ，表示购物车中第i本书的价格。输入数据保证  本书的价格总和不小于 。n<=15
Output
仅输出一个正整数，表示在满足包邮条件下的最小花费。
Sample Input
4 100
20
90
60
60
Sample Output
110
*/
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
int main()
{
    int s[20],n,x,a,i,flag,minp,sum;
    cin >> n >> x; // 书数量、包邮价
    minp=0;
    for(i=0;i<n;i++)
    {
        cin>>s[i];
        minp+=s[i];
    }
    for(a=1;a<(1<<n);a++)
    {
        flag=0;
        for(i=0;i<n;i++)
        {
            if(a&1<<i)
            {
                flag+=s[i]; //购买书籍，加上价格
            }
        }
        if(flag>=x&&flag<minp)
        {
            minp=flag;
        }
    }
    cout << minp << endl;
    return 0;
}
